The invention relates to computers and computer peripherals. More particularly, the invention relates to a computer enclosure processor with failover capabilities.
SCSI (small computer systems interface) is a commonly used parallel I/O (input/output) system for computers. Computers can be interconnected with peripherals or modules along a SCSI bus or SCSI channel. A common interconnection arrangement is a daisy chain, where the bus extends out of one module into the next peripheral. The number of modules on a SCSI channel is bound by a fixed upper limit (e.g., 8 or 16, including the host computer). Although ANSI (American National Standards Institute) standards documents exist for SCSI, many variations are possible and proprietary adaptations are common. For example, a SCSI-1 bus is a 50 conductor, single ended, parallel bus; a SCSI-2 bus is an extension of SCSI-1 to 68 conductors; and SCSI-3 is a faster, low voltage differential version of SCSI-2. SCSI requires termination at the ends of the bus, and the terminations may be either active or passive and may be either internal or external to the peripheral. Finally, a variety of SCSI connectors can be used.
FIG. 1 illustrates a computer system and various peripheral devices interconnected by a single SCSI I/O bus. A computer 100 includes two internal SCSI devices 102 and 104. The internal devices 102 and 104 might be, for example, a disk drive and a backup tape drive. Two external devices 106 and 108 are also connected to the SCSI bus. The external SCSI devices might be, for example, a printer and a scanner. In general, the SCSI bus system may have more or fewer devices. In the SCSI system illustrated in FIG. 1, the internal device 102 must provide a bus termination impedance. The internal devices 102 and 104 are typically connected by a ribbon cable with a single connector (for example, 110) for each device. The external devices 106 and 108 are typically connected by a series of double ended cables. A first cable connects a connector 112 on the computer 100 to the external device 106. A second cable connects the external device 106 to the external device 108. The external device 108 has an open connector 114 (no cable attached) that may be terminated with an external terminator plug 116 (mandatory for Plug and Play SCSI) or may be terminated internally to the device 108. The total length of a SCSI bus to a final termination must be less than a predetermined limit so as to ensure signal integrity along the entire bus.
Associated with each device on a SCSI bus is an adapter. An adapter is an interface between the SCSI channel and the device. For example, the computer 100 illustrated in FIG. 1 includes a host adapter 118. Peripheral devices 102, 104, 106, and 108 each contain a peripheral adapter (not shown). An adapter may be physically packaged as a circuit card, board, or any other suitable form. In addition, one or more of the various peripherals may include SCSI controllers and other processors, which may be located on the same card or board as the adapter.
The host or host adapter is the initiator of the SCSI bus, and the other modules or peripherals are targets. The initiator commands the targets on the bus to read or write data from/to the bus. Each device on the bus has a unique address that the host initiator uses to direct commands and facilitate data transfer.
One or more SCSI peripheral devices may form a single SCSI enclosure. For example, a SCSI enclosure may be a collection of storage units in the same physical housing, sharing a common power supply and cooling system. The degree of collocation of devices within an enclosure can vary depending upon the needs of the overall computer system. For example, all peripherals in a room may be treated as an enclosure. On the other extreme, a single circuit board or IC (integrated circuit) chip may be logically partitioned into several SCSI devices and the board or chip may be treated as an enclosure. A single SCSI device by itself may be an enclosure. Typically, an enclosure defines a common environment in which there is high correlation of environmental conditions from device to device within the enclosure. However, an enclosure need not be so constrained, and one skilled in the art would appreciate that other considerations may warrant combining and treating as an enclosure one or more peripherals that do not share a common physical environment.
SCSI devices within a SCSI enclosure may retain their logical identity as separate, devices, each individually accessible by address by the host computer. On the other hand, the enclosure itself may manage and hide the underlying devices and present a single composite device (single address) to the host computer.
A SCSI enclosure may have associated with it an enclosure processor. An enclosure processor is a processor that performs monitoring and control of the enclosure. An enclosure processor typically monitors power supplies, cooling fans, doors, temperatures, and individual device locks. An enclosure processor may also control displays and a keypad or other switches on a front panel of the enclosure. U.S. Pat. No. 5,586,250, issued to Carbonneau et al. on Dec., 17, 1996, and hereby incorporated by reference, describes an enclosure processor using the terminology xe2x80x9cSMARt (status monitoring and reporting) meansxe2x80x9d and xe2x80x9cCMAC (cabinet monitor and control) boardxe2x80x9d.
An enclosure processor is typically a device on the SCSI bus, just like a peripheral device, with its own unique address. In this way, a host adapter can command and control an enclosure processor. To facilitate communications between a host adapter and an enclosure processor, a communications protocol may be implemented on top of the SCSI protocol. Two common protocols for use with an enclosure processor on a SCSI bus are the SAF-TE (SCSI accessible fault-tolerant enclosure) and SES (SCSI enclosure specification) protocols.
FIGS. 2-4 will next be described. FIGS. 2-4 depict various configurations of a SCSI peripheral enclosure 200 with enclosure processors. These configurations illustrate problems that the present invention solves. In FIGS. 2-4, the peripherals are disk drives and the enclosure includes an array of disk drives, such as might be employed in a RAID (redundant array of inexpensive disks) or JBOD (just a bunch of disks) system.
FIGS. 2-4 depict a remote disk storage enclosure 200 containing four SCSI disk drives 210-213 on a first SCSI bus 220 and four SCSI disk drives 230-233 on a second SCSI bus 240. Both buses 220 and 240 are attachable to the outside world through an adapter board 250. The adapter board 250 contains a SCSI enclosure processor (SEP) on each SCSI busxe2x80x94SEP 252 on the first bus 220 and SEP 254 on the second bus 240. The adapter board 250 also contains one external host connection repeater on each SCSI busxe2x80x94repeater 256 near the external connections to the first bus 220 and repeater 258 near the external connections to the second bus 240. Depending upon how external connections are made to the adapter board 250, the two SCSI bus systems of enclosure 200 can be utilized in a simplex, duplex, or cluster configuration, as will next be described.
FIG. 2 illustrates a simplex configuration, in which the first and second SCSI buses 220 and 240 are joined to form a single bus and a host computer 300 is attached to the single joined bus. The first SCSI bus 220 is joined to the second SCSI bus 240 by an external jumper cable 302, which contributes additional length to the overall bus. The other external connection on the second SCSI bus 240 is capped by an external terminator 304. In this simplex arrangement, the host computer 300 is able to access all eight disk drives 210xe2x80x94213 and 230xe2x80x94233 of the enclosure 200. In this mode, the host computer is also able to access both SEPs 252 and 254, because each has its own SCSI address. Typically, control of the enclosure 200 is partitioned between SEPs 252 and 254, while monitoring functions within the enclosure 200 are partitioned or redundantly performed. The simplex arrangement of adapter board 250 is therefore wasteful of enclosure processing capability.
FIG. 3 illustrates the enclosure 200 in a duplex arrangement or duplex mode. The enclosure 200 of FIG. 3 is the same as in FIG. 2; however, the external connections to the enclosure 200, and in particular the adapter board 250, differ in the duplex mode from the simplex mode. In the duplex mode, a second computer 306 is connected to the second SCSI bus 240. To comply with the SCSI termination requirements, external terminators 308 and 310 are connected to the other external connections of the first and second SCSI buses 220 and 240, respectively. In the duplex arrangement, the enclosure 200 provides two separate and independent disk storage systems. The first host computer 300 is able to access disk drives 210xe2x80x94213, as well as the first SEP 252, via the first SCSI bus 220. The first SEP 252 controls and monitors the enclosure 200 under the direction of and in communication with the first host computer 300. Meanwhile, the second computer 306 can access disk drives 230xe2x80x94233 via the second SCSI bus 240. The second SCSI bus 240 is also connected to the second SEP 254, which independently controls and monitors the enclosure 200 with respect to the second computer 306.
FIG. 4 illustrates a clustering mode or cluster arrangement for the disk drive enclosure 200. Again, the enclosure 200 is the same as shown in FIGS. 2 and 3; however, the external connections to the enclosure 200, and in particular to the adapter board 250, differ. In the clustering mode, the first host computer 300 is connected to the first SCSI bus 220, and the second computer 306 is connected to the second SCSI bus 240. Furthermore, the first SCSI bus 220 is externally connected to the second SCSI bus 240 by an external jumper cable 302. In this clustering arrangement, both the first host computer 300 and the second computer 306 can access all eight disk drives 210xe2x80x94213 and 230xe2x80x94233. Furthermore, both the first SEP 252 and the second SEP 254 are accessible from either computer. A clustering arrangement of the disk drive enclosure 200 is useful when the first and second computers 300 and 306 are tightly coupled (e.g., such as when they are clustered together) or when they simply require access to the same data storage.
The configurations of FIGS. 2xe2x80x944 illustrate several problems that the present invention is capable of solving. First, there is wasteful redundancy of enclosure processing capability and SCSI addressing space. The adapter board 250 contains two active SEPs, regardless of whether both are needed. Only the duplex configuration of FIG. 3 requires that the SEPs 252 and 254 operate independently. In the other configurations, the second SEP 254 is not utilized to enhance the availability, fault-tolerance, or robustness of the enclosure processing capability. In particular, failover from an active SEP to a standby SEP is not possible. Furthermore, the second SEP 254 occupies one SCSI address that is therefore unavailable for use by a productive module or peripheral. A second problem is that hot-swapping of an SEP is not possible, because both SEPs are physically mounted on the same board. Instead, operation of the system must be halted in order to remove and replace an SEP or adapter board. A third problem is that setting up the adapter board 250 in different configurations requires operator intervention and external SCSI bus jumpers, which disadvantageously add to the total bus length. A fourth problem occurs in the cluster configuration of FIG. 4 when either the jumper cable 302 or one of the computers 300 or 306 becomes disconnected, resulting in an end of the bus, as seen by the remaining computer, being unterminated and therefore unusable. The present invention can be utilized to solve these and other problems.
The present invention is a device and method for enclosure processing that provides failover and hot-swapping capabilities. The present invention provides enclosure processing that is modular, flexible, and offers higher availability, fault-tolerance, and robustness with a minimum of operator intervention.
In one form, the present invention is an adapter containing a single enclosure processor. The adapter connects to peripheral buses within an enclosure, and the bus connections may be selective, such as through a repeater that can be selectively enabled or disabled. The adapter can be utilized in an enclosure alone or together with other adapters. A single adapter can be utilized in a simplex arrangement by connecting internally to the one or more buses internal to the enclosure. Multiple adapters can be used together in the same enclosure in duplex or cluster modes. In a duplex mode, each adapter connects to a subset of buses, where the subsets are non-intersecting with each other. In a cluster mode, at least some of the subsets overlap. In a cluster configuration, a first enclosure processor on a first adapter assumes an active status, while a second enclosure processor on a second adapter waits in a standby mode. The standby enclosure processor detects when the active enclosure processor has failed, misoperated, or been removed and automatically failsover, assuming the identity of the active enclosure processor and connecting itself appropriately, without disruption to the system. Hot-swapping of the adapter boards is therefore possible.